@alphabite/medusa-variant-images
Version:
Alphabite's Medusa Variant Images Plugin
98 lines • 8.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PUT = exports.DELETE = exports.POST = void 0;
const product_variant_image_1 = require("../../../../../modules/product-variant-image");
const utils_1 = require("@medusajs/framework/utils");
const POST = async (req, res) => {
const logger = req.scope.resolve("logger");
const product_variant_id = req.params.id;
const variantImagesService = req.scope.resolve(product_variant_image_1.PRODUCT_VARIANT_IMAGE_MODULE);
const link = req.scope.resolve("link");
const urls = req.validatedBody.urls;
const input = urls.map((img_url, i) => ({
product_variant_id,
url: img_url,
rank: i,
}));
try {
const variant_images = await variantImagesService.createProductVariantImages(input);
const mappedLinks = variant_images.map((image) => ({
product: { product_variant_id },
product_variant_image: { product_variant_image_id: image.id },
}));
await link.create(mappedLinks);
return res.status(201).json(variant_images);
}
catch (error) {
logger.error("Creating product variant images failed", error);
return res.status(500).end();
}
};
exports.POST = POST;
const DELETE = async (req, res) => {
const logger = req.scope.resolve("logger");
const ids = req.validatedQuery.images_id;
const link = req.scope.resolve("link");
const query = req.scope.resolve("query");
const id = req.params.id;
const variantImagesService = req.scope.resolve(product_variant_image_1.PRODUCT_VARIANT_IMAGE_MODULE);
try {
await variantImagesService.deleteProductVariantImages(ids);
await link.delete({
product_variant_image: { product_variant_image_id: ids },
});
const { data } = (await query.graph({
entity: "product_category_images",
filters: {
product_category_id: id,
},
fields: ["*"],
pagination: {
order: {
rank: "asc",
},
},
}));
const updated_images_ranks = await (0, utils_1.promiseAll)(data
.map(async (image, i) => {
if (image.rank !== i) {
return (await variantImagesService.updateProductVariantImages({
id: image.id,
rank: i,
}))[0];
}
else
return image;
})
.filter((img) => img !== undefined));
return res.status(200).json(updated_images_ranks);
}
catch (error) {
logger.error("Deleting product variant image record failed", error);
return res.status(500).end();
}
};
exports.DELETE = DELETE;
const PUT = async (req, res) => {
const logger = req.scope.resolve("logger");
const productVariantImagesService = req.scope.resolve(product_variant_image_1.PRODUCT_VARIANT_IMAGE_MODULE);
const { images } = req.validatedBody;
try {
const updated_images = await (0, utils_1.promiseAll)(images
.map(async ({ rank, id }) => {
const updated_product_variant_image = await productVariantImagesService.updateProductVariantImages({
id,
rank,
});
return updated_product_variant_image;
})
.filter(Boolean));
res.status(200).json(updated_images);
}
catch (error) {
logger.error("Updating Collection images record failed", error);
return res.status(500).end();
}
};
exports.PUT = PUT;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtdmFyaWFudC9baWRdL2ltYWdlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFPQSx3RkFBNEY7QUFFNUYscURBQXVEO0FBRWhELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBbUQsRUFDbkQsR0FBMEMsRUFDMUMsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFFekMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDNUMsb0RBQTRCLENBQzdCLENBQUM7SUFFRixNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV2QyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxrQkFBa0I7UUFDbEIsR0FBRyxFQUFFLE9BQU87UUFDWixJQUFJLEVBQUUsQ0FBQztLQUNSLENBQUMsQ0FBQyxDQUFDO0lBRUosSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0QsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqRCxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRTtZQUMvQixx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